﻿using RockBus.Messages.Interfaces;
using System;

namespace RockBus.Routing.Interfaces
{
    public interface IQueueManager
    {
        void Register(Action<IMessageContext> dequeueMessageAction, Action<IMessageContext> dequeueExceptionAction, Action<IMessageContext> dequeueRetryAction);

        void ProcessMessage(IMessageContext messageContext);

        void ProcessException(IMessageContext messageContext);

        void ProcessRetry(IMessageContext messageContext);
    }
}